#pragma once

#include "iengine.h"
#include <QtGui/QWidget>

namespace Core {

class WindowPrivate;

class Window : public QWidget
{
    Q_OBJECT

public:
    Window();
    virtual ~Window();

    /**
     * @brief resetEngine resets current game engine
     * @param engine
     */
    void resetEngine(IEngine *engine);

public slots:
    void onGlInitialized();

protected:
    void keyPressEvent(QKeyEvent *);
    void keyReleaseEvent(QKeyEvent *);
    void enterEvent(QEvent *);
    void leaveEvent(QEvent *);

private:
    WindowPrivate *d;
};

} // Core
